
# 该工具用于动态计算出特征图的输出大小

# 【卷积的计算公式】
#
# 输入图片的尺寸：一般用n*n 表示输入的image大小。
#
# 卷积核的大小：一般用 f * f 表示卷积核的大小。
#
# 填充（Padding）：一般用 p  来表示填充大小。
#
# 步长(Stride)：一般用 s  来表示步长大小。
#
# 输出图片的尺寸：一般用 o 来表示。

# https://zhuanlan.zhihu.com/p/77471866

# 简单总结：
# input_size=32*32
# 卷积核3*3 padding 1 步长 1  特征图的大小不变   32*32

# 卷积核3*3 padding 1 步长 2  特征图的大小缩小一半 16*16


import math

def cal_wh(n,f,p,s):
    o = (n+2*p - f)//s
    o = math.floor(o) + 1
    return o

if __name__ == '__main__':
    print("输入特征图的宽：")
    w = int(input())
    print("输入特征图的高：")
    h = int(input())
    print("输入卷积核的大小：")
    f = int(input())
    print("输入卷积核的padding：")
    p = int(input())
    print("输入卷积核的步长：")
    s = int(input())
    print( "out_size:{} {}".format(cal_wh(w,f,p,s),cal_wh(h,f,p,s)))